global circular

extern malloc

section .data

section .text

circular:
	push ebp
	mov ebp, esp

	;crear nodo lista
	mov eax,4
	push eax
	call malloc
	add esp,4
	mov esi,eax ;esi puntero al primer elemento
	
	mov eax,4
	push eax
	call malloc
	add esp,4
	mov edi,eax ;edi puntero al segundo elemento
	
	mov eax,4
	push eax
	call malloc
	add esp,4
	mov ecx,eax ;ecx puntero al tercer elemento
	
	mov dword [esi],1 ;valor del primer nodo
	mov [esi + 4], edi ;puntero del primer nodo al 2do
	
	mov dword [edi],2 ;valor del segundo nodo
	mov [edi + 4],ecx ;puntero del 2do nodo al 3ero
	
	mov dword [ecx],3 ;valor del tercer nodo
	mov [ecx + 4],esi ;puntero del 3ero al 1ero !CIRCULAR!
	
	mov eax,esi

	pop ebp
	ret